﻿namespace DotNetStar.OpenSDK.Payment
{
    /// <summary>
    /// 提供签名哈希算法的功能。
    /// </summary>
    public interface ISignatureHasher
    {
        /// <summary>
        /// 为指定的对象生成签名。
        /// </summary>
        /// <param name="model">要生成签名的对象。</param>
        /// <returns>签名字符串。</returns>
        string GenerateSignature(object model);
        /// <summary>
        /// 校验指定的签名是与指定的对象生成的签名所匹配。
        /// </summary>
        /// <param name="model">生成签名的对象。</param>
        /// <param name="hashedSign">要验证的签名字符串。</param>
        /// <returns>若匹配，则为 <c>true</c>；否则为 <c>false</c>。</returns>
        bool ValidateSignature(object model, string hashedSign);
    }
}
